package com.oig.common.util;

import org.apache.commons.lang3.StringUtils;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 比较工具类， 由1.0迁移过来
 *
 * @author qiuzebin
 * @date 2023/9/15
 */
public class CompareUtils {
    /**
     * 比较字符串是否相同
     *
     * @param str1 str1
     * @param str2 str2
     * @return 不相同返回true
     */
    public static boolean compareStr(String str1, String str2) {
        if (StringUtils.isNotBlank(str1) && StringUtils.isNotBlank(str2)) {
            if (str1.equals(str2)) {
                return false;
            }
        }
        return !StringUtils.isBlank(str1) || !StringUtils.isBlank(str2);
    }

    /**
     * 比较日期是否相同
     *
     * @param date1 date1
     * @param date2 date2
     * @return 不相同返回true
     */
    public static boolean compareDate(Date date1, Date date2) {
        if (date1 != null && date2 != null) {
            if (date1.equals(date2)) {
                return false;
            }
        }
        return date1 != null || date2 != null;
    }

    /**
     * 比较金额是否相同
     *
     * @param bigDecimal1 bigDecimal1
     * @param bigDecimal2 bigDecimal2
     * @return 不相同返回true
     */
    public static boolean compareBigDecimal(BigDecimal bigDecimal1, BigDecimal bigDecimal2) {
        if (bigDecimal1 != null && bigDecimal2 != null) {
            if (bigDecimal1.setScale(4, BigDecimal.ROUND_HALF_UP)
                    .equals(bigDecimal2.setScale(4, BigDecimal.ROUND_HALF_UP))) {
                return false;
            }
        }
        return bigDecimal1 != null || bigDecimal2 != null;
    }

    /**
     * 比较数字是否相同
     *
     * @param integer1 integer1
     * @param integer2 integer2
     * @return 不相同返回true
     */
    public static boolean compareInteger(Integer integer1, Integer integer2) {
        if (integer1 != null && integer2 != null) {
            if (integer1.equals(integer2)) {
                return false;
            }
        }
        return integer1 != null || integer2 != null;
    }
}
